Computer systems generally include a number of components that are electrically connected to one another. These components include one or more processors, memory devices, input/output (I/O) devices, and controllers for the memory and I/O devices. Because the components can be contained in various types of housing, the connections between the components can take numerous forms. For example, components may be microchips that may plug into or be soldered into slots sockets on a motherboard. Components may also take the form of circuit boards that have edge connectors that plug into slots on the motherboard. In addition, components may be connected to a computer system using cables that connect components to connectors in the motherboard or into plugs in the chassis that houses the motherboard.
Regardless of the connection mechanism between two components in a computer system, a failure in a connection between two or more components may cause broader failures to occur in the system and possibly cause the system to crash. Although some diagnostic testing of interconnections between components may occur in response to a computer system being turned on or reset, this type of testing may not detect failures in computer systems that are left on and not reset for extended periods of time. In addition, certain failures of an interconnect may not appear without rigorous pattern testing of the interconnect. Interconnect failures that occur in computer systems during operation may not be detected until they cause undesirable results such as a crash.
Accordingly, it would be desirable to be able to detect interconnect failures between components in a computer system before the failures cause undesirable results during operation of the system.